package com.squirrel.michale;

/**
 * @author guanhao 观浩
 * @version 1.0.0.0
 * @createTime 2023/2/13 8:01 PM
 * @company Michale Squirrel
 * @link
 * @description
 */
public class LeetCode0101 {

    public boolean isSymmetric(TreeNode root) {

        if (root == null) {
            return true;
        }
        if (root.left != null && root.right!=null ) {
            return isSymmetric(root.left) && isSymmetric(root.right) && (root.left.val == root.right.val);
        }
        if (root.left == null && root.right == null) {
            return true;
        }
//        if ()
        return false;
    }


    public boolean isSymmetric2(TreeNode root) {
        if(root==null) {
            return true;
        }
        //调用递归函数，比较左节点，右节点
        return dfs(root.left,root.right);
    }

    boolean dfs(TreeNode left, TreeNode right) {
        //递归的终止条件是两个节点都为空
        //或者两个节点中有一个为空
        //或者两个节点的值不相等
        if(left==null && right==null) {
            return true;
        }
        if(left==null || right==null) {
            return false;
        }
        if(left.val!=right.val) {
            return false;
        }
        //再递归的比较 左节点的左孩子 和 右节点的右孩子
        //以及比较  左节点的右孩子 和 右节点的左孩子
        return dfs(left.left,right.right) && dfs(left.right,right.left);
    }

//    作者：王尼玛
//    链接：https://leetcode.cn/problems/symmetric-tree/solutions/46560/dong-hua-yan-shi-101-dui-cheng-er-cha-shu-by-user7/
//    来源：力扣（LeetCode）
//    著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。

}
